# 由于我们的Web App建立在asyncio的基础上，因此用aiohttp写一个基本的app.py
# Web服务器，由于HTTP连接就是IO操作，处理高并发问题
import logging

logging.basicConfig(level=logging.INFO)

import asyncio
from aiohttp import web


# 索引
def index(request):
    resp = web.Response(body=b'<h1>welcome to jiuchang</h1>')
    # 如果不添加content_type，某些严谨的浏览器会把网页当成文件下载，而不是直接显示
    resp.content_type = 'text/html;charset=utf-8'
    return resp


# 初始化异步的网络
async def init(loop):
    app = web.Application(loop=loop)
    app.router.add_route('GET', '/', index)
    srv = await loop.create_server(app.make_handler(), '127.0.0.1', 9001)
    logging.info('server started at http://127.0.0.1:9001...')
    return srv


# 获取循环的消息
loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()
